//
//  YDUITableView.m
//  IngCard
//
//  Created by kf on 2017/7/10.
//  Copyright © 2017年 IngDan. All rights reserved.
//

#import "YDUITableView.h"
#import "UITableView+QMUI.h"

@implementation YDUITableView

@dynamic delegate;
@dynamic dataSource;

- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style {
    if (self = [super initWithFrame:frame style:style]) {
        [self didInitialized];
    }
    return self;
}

- (instancetype)initWithCoder:(NSCoder *)aDecoder {
    if (self = [super initWithCoder:aDecoder]) {
        [self didInitialized];
    }
    return self;
}

- (void)didInitialized
{
    UIColor *backgroundColor = nil;
    if (self.style == UITableViewStylePlain)
    {
        backgroundColor = UIColorWhite;
    }
    else
    {
        backgroundColor = UIColorMake(246, 246, 246);
    }
    if (backgroundColor)
    {
        self.backgroundColor = backgroundColor;
    }
    self.separatorColor = UIColorMake(200, 199, 204);
    self.tableFooterView = [[UIView alloc] init];// 去掉尾部空cell
    self.backgroundView = [[UIView alloc] init];// 设置一个空的backgroundView，去掉系统的，以使backgroundColor生效
    
    self.sectionIndexColor =  UIColorMake(163, 163, 163);
    self.sectionIndexTrackingBackgroundColor =  [UIColor colorWithRed:1 green:1 blue:1 alpha:0];
    self.sectionIndexBackgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0];;
}

- (void)dealloc {
    self.delegate = nil;
    self.dataSource = nil;
}

// 保证一直存在tableFooterView，以去掉列表内容不满一屏时尾部的空白分割线
- (void)setTableFooterView:(UIView *)tableFooterView {
    if (!tableFooterView) {
        tableFooterView = [[UIView alloc] init];
    }
    [super setTableFooterView:tableFooterView];
}

- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
    // 默认情况下只有当view是非UIControl的时候才会返回yes，这里统一对UIButton也返回yes
    // 原因是UITableView上面把事件延迟去掉了，但是这样如果拖动的时候手指是在UIControl上面的话，就拖动不了了
    if ([view isKindOfClass:[UIControl class]]) {
        if ([view isKindOfClass:[UIButton class]]) {
            return YES;
        } else {
            return NO;
        }
    }
    return YES;
}
@end
